Variables:

Risk Age Sex Country

library(data.table)
library(tidyr)

#read the data (Wave 5)

# Data of Wave 5


WV5_data <- readRDS("/Users/cristinacandido/Documents/Github/risk_wvs/data/WVS/F00007944-WV5_Data_R_v20180912.rds")


# Convert WV5_data-object in data.frame 
WV5_data_df <- as.data.frame(WV5_data)

# show first five columns
head(WV5_data_df[, 1:5])

clean the data set

library(dplyr)

#rename the variables
WV5_data <- WV5_data_df %>%
  rename(sex = V235, age = V237, country = V2, wave = V1, risk = V86)
WV5_data


#select only the variables of interest
WV5_data <- WV5_data %>%
  select(sex, age, country, wave, risk)
WV5_data
#decode the country names 
countrynames = read.csv("/Users/cristinacandido/Documents/Github/risk_wvs/data/WVS/countrynames.txt", header=FALSE,as.is=TRUE)
colnames(countrynames) = c("code", "name")
WV5_data$country_lab = countrynames$name [match(WV5_data$country, countrynames$code)]
table(WV5_data$country_lab)

            Andorra           Argentina           Australia              Brazil            Bulgaria        Burkina Faso 
               1003                1002                1421                1500                1001                1534 
             Canada               Chile               China            Colombia          Cyprus (G)               Egypt 
               2164                1000                1991                3025                1050                3051 
           Ethiopia             Finland              France             Georgia             Germany               Ghana 
               1500                1014                1001                1500                2064                1534 
      Great Britain           Guatemala           Hong Kong             Hungary               India           Indonesia 
               1041                1000                1252                1007                2001                2015 
               Iran                Iraq               Italy               Japan              Jordan            Malaysia 
               2667                2701                1012                1096                1200                1201 
               Mali              Mexico             Moldova             Morocco         Netherlands         New Zealand 
               1534                1560                1046                1200                1050                 954 
             Norway                Peru              Poland             Romania              Russia              Rwanda 
               1025                1500                1000                1776                2033                1507 
           Slovenia        South Africa         South Korea               Spain              Sweden         Switzerland 
               1037                2988                1200                1200                1003                1241 
             Taiwan            Thailand Trinidad and Tobago              Turkey             Ukraine       United States 
               1227                1534                1002                1346                1000                1249 
            Uruguay            Viet Nam              Zambia 
               1000                1495                1500 
WV5_data
NA
NA

#Read Dataset (Wave 6)

WV6_data <- load("/Users/cristinacandido/Documents/Github/risk_wvs/data/WVS/WV6_Data_R_v20201117.rdata") 
WV6_data <- WV6_Data_R_v20201117 
print(WV6_data)

#rename variables

WV6_data <- WV6_data %>%
  rename(wave = V1, sex = V240, age = V242,country = V2, risk = V76)


#select only the variables of interest
WV6_data <- WV6_data %>%
  select(wave, sex, age, country, sex,risk)
WV6_data
NA

#decode daraset (Wave 6)

countrynames = read.csv("/Users/cristinacandido/Documents/Github/risk_wvs/data/WVS/countrynames.txt", header=FALSE,as.is=TRUE)
colnames(countrynames) = c("code", "name")
WV6_data$country_lab = countrynames$name [match(WV6_data$country, countrynames$code)]
table(WV6_data$country_lab)

            Algeria           Argentina             Armenia           Australia          Azerbaijan             Belarus 
               1200                1030                1100                1477                1002                1535 
             Brazil               Chile               China            Colombia          Cyprus (G)             Ecuador 
               1486                1000                2300                1512                1000                1202 
              Egypt             Estonia             Georgia             Germany               Ghana               Haiti 
               1523                1533                1202                2046                1552                1996 
          Hong Kong               India                Iraq               Japan              Jordan          Kazakhstan 
               1000                4078                1200                2443                1200                1500 
             Kuwait          Kyrgyzstan             Lebanon               Libya            Malaysia              Mexico 
               1303                1500                1200                2131                1300                2000 
            Morocco         Netherlands         New Zealand             Nigeria            Pakistan           Palestine 
               1200                1902                 841                1759                1200                1000 
               Peru         Philippines              Poland               Qatar             Romania              Russia 
               1210                1200                 966                1060                1503                2500 
             Rwanda           Singapore            Slovenia        South Africa         South Korea               Spain 
               1527                1972                1069                3531                1200                1189 
             Sweden              Taiwan            Thailand Trinidad and Tobago             Tunisia              Turkey 
               1206                1238                1200                 999                1205                1605 
            Ukraine       United States             Uruguay          Uzbekistan               Yemen            Zimbabwe 
               1500                2232                1000                1500                1000                1500 
WV6_data

#combine the 2 dataset (Wave 6 + Wave 5)

WV5_data
WV6_data
data = rbind(WV5_data, WV6_data)
data

#number of countries

length(unique(data$country_lab))
[1] 80

#exclusion of participants and omission of missing data (na)

data = subset(data, risk > 0 & sex > 0 & age >0 )
data_Wave5 = subset(WV5_data, risk > 0 & sex > 0 & age >0 )
data_Wave6 = subset(WV6_data, risk > 0 & sex > 0 & age >0)
data <- na.omit(data)
data_Wave5 <- na.omit(data_Wave5)
data_Wave6 <- na.omit(data_Wave6)



#number of participants per Wave

nrow(data)
[1] 156528
nrow(data_Wave5)
[1] 70308
nrow(data_Wave6)
[1] 86220
# Load the dplyr package
library(dplyr)

# Assuming the data frame is called 'data' and the column containing the country information is called 'country'
country_counts <- data %>%
  count(country_lab)

# Print the result
print(country_counts)
NA

#number and list and participants pro countries pro Wave (including both Waves together)

table(data_Wave5$country_lab)

            Andorra           Argentina           Australia 
               1001                 981                1381 
             Brazil            Bulgaria        Burkina Faso 
               1492                 942                1332 
             Canada               Chile               China 
               2121                 969                1898 
         Cyprus (G)               Egypt            Ethiopia 
               1042                3026                1481 
            Finland              France             Georgia 
               1013                 995                1451 
            Germany               Ghana       Great Britain 
               2019                1513                1036 
            Hungary               India           Indonesia 
               1003                1575                1942 
               Iran               Japan              Jordan 
               2615                1032                1163 
           Malaysia                Mali              Mexico 
               1200                1312                1505 
            Moldova             Morocco         Netherlands 
               1028                1145                1046 
             Norway                Peru              Poland 
               1019                1430                 989 
            Romania              Russia              Rwanda 
               1583                1970                1409 
           Slovenia        South Africa         South Korea 
               1008                2945                1200 
              Spain              Sweden         Switzerland 
               1184                 997                1233 
             Taiwan            Thailand Trinidad and Tobago 
               1225                1514                 997 
             Turkey             Ukraine       United States 
               1303                 967                1219 
            Uruguay            Viet Nam              Zambia 
                989                1416                1452 
length(unique(data_Wave5$country_lab)) 
[1] 51
table(data_Wave6$country_lab)

            Algeria           Argentina             Armenia 
               1115                1011                1090 
          Australia          Azerbaijan             Belarus 
               1441                1002                1528 
             Brazil               Chile               China 
               1481                 914                2167 
           Colombia          Cyprus (G)             Ecuador 
               1506                 993                1201 
              Egypt             Estonia             Georgia 
               1523                1509                1190 
            Germany               Ghana               Haiti 
               2024                1552                1976 
          Hong Kong               India                Iraq 
                977                3472                1187 
              Japan              Jordan          Kazakhstan 
               2201                1195                1500 
             Kuwait          Kyrgyzstan             Lebanon 
               1190                1497                1177 
              Libya            Malaysia              Mexico 
               2043                1300                1996 
            Morocco         Netherlands         New Zealand 
               1035                1813                 802 
            Nigeria            Pakistan           Palestine 
               1759                1176                 974 
               Peru         Philippines              Poland 
               1158                1199                 950 
              Qatar             Romania              Russia 
               1052                1436                1806 
             Rwanda           Singapore            Slovenia 
               1527                1938                1051 
       South Africa         South Korea               Spain 
               3481                1182                1173 
             Sweden              Taiwan            Thailand 
               1200                1195                1160 
Trinidad and Tobago             Tunisia              Turkey 
                983                1097                1573 
            Ukraine       United States             Uruguay 
               1500                2189                 991 
         Uzbekistan               Yemen            Zimbabwe 
               1433                 929                1500 
length(unique(data_Wave6$country_lab))
[1] 60
length(unique(data$country_lab)) 
[1] 77
table(data$country_lab)

            Algeria             Andorra           Argentina 
               1115                1001                1992 
            Armenia           Australia          Azerbaijan 
               1090                2822                1002 
            Belarus              Brazil            Bulgaria 
               1528                2973                 942 
       Burkina Faso              Canada               Chile 
               1332                2121                1883 
              China            Colombia          Cyprus (G) 
               4065                1506                2035 
            Ecuador               Egypt             Estonia 
               1201                4549                1509 
           Ethiopia             Finland              France 
               1481                1013                 995 
            Georgia             Germany               Ghana 
               2641                4043                3065 
      Great Britain               Haiti           Hong Kong 
               1036                1976                 977 
            Hungary               India           Indonesia 
               1003                5047                1942 
               Iran                Iraq               Japan 
               2615                1187                3233 
             Jordan          Kazakhstan              Kuwait 
               2358                1500                1190 
         Kyrgyzstan             Lebanon               Libya 
               1497                1177                2043 
           Malaysia                Mali              Mexico 
               2500                1312                3501 
            Moldova             Morocco         Netherlands 
               1028                2180                2859 
        New Zealand             Nigeria              Norway 
                802                1759                1019 
           Pakistan           Palestine                Peru 
               1176                 974                2588 
        Philippines              Poland               Qatar 
               1199                1939                1052 
            Romania              Russia              Rwanda 
               3019                3776                2936 
          Singapore            Slovenia        South Africa 
               1938                2059                6426 
        South Korea               Spain              Sweden 
               2382                2357                2197 
        Switzerland              Taiwan            Thailand 
               1233                2420                2674 
Trinidad and Tobago             Tunisia              Turkey 
               1980                1097                2876 
            Ukraine       United States             Uruguay 
               2467                3408                1980 
         Uzbekistan            Viet Nam               Yemen 
               1433                1416                 929 
             Zambia            Zimbabwe 
               1452                1500 
data$risk = 6 - data$risk + 1
data$risk_ord=data$risk 
data$risk = 10*scale(data$risk, center=TRUE,scale=TRUE)+50
data
NA
NA

#number of males vs females (1 = males; 2 = females)

table(data$sex)

female   male 
 81384  75144 
table(data_Wave5$sex)

female   male 
 36520  33788 
table(data_Wave6$sex)

female   male 
 44864  41356 
#create a categorical age variable
data$agecat[data$age<20]="15-19"
data$agecat[data$age>=20 & data$age <30] = "20-29"
data$agecat[data$age>=30 & data$age <40] = "30-39"
data$agecat[data$age>=40 & data$age <50] = "40-49"
data$agecat[data$age>=50 & data$age <60] = "50-59"
data$agecat[data$age>=60 & data$age <70] = "60-69"
data$agecat[data$age>=70 & data$age <80] = "70-79"
data$agecat[data$age>=80] = "80+"

#gender variables

data$sex[data$sex == 1] <- "male"
data$sex[data$sex == 2] <- "female"

data_Wave5$sex[data_Wave5$sex == 1] <- "male"
data_Wave5$sex[data_Wave5$sex == 2] <- "female"

data_Wave6$sex[data_Wave6$sex == 1] <- "male"
data_Wave6$sex[data_Wave6$sex == 2] <- "female"

#average age of participants
mean(data$age)
[1] 41.62343
median(data$age)
[1] 39

#wave variables

data$wave[data$wave == 5] <- "Wave 5"
data$wave[data$wave == 6] <- "Wave 6"
data

#age range

range(data$age) 
[1]  15 102
range(data_Wave5$age)
[1] 15 98
range(data_Wave6$age)
[1]  16 102

#risk taking Frequency

library(ggplot2)
ggplot(data, aes(x = risk)) +
  geom_histogram(binwidth = 0.5, fill = "lightblue", color = "black") +
  labs(x = "Risk Taking", y = "Frequency", title = "Histogram of Risk Taking") +
  theme_minimal()

#age frequency

ggplot(data, aes(x = age)) +
  geom_histogram(binwidth = 0.5, fill = "lightblue", color = "black") +
  labs(x = "Age", y = "Frequency", title = "Histogram of Age Distributionn") +
  theme_minimal()

#age vs risk taking


ggplot(data, aes(x = agecat, y = risk)) +
  geom_boxplot() +
  labs(title = "Boxplot of Risk and Adventure by Age",
       x = "Age",
       y = "Risk and Adventure") +
  theme_minimal()

#sex vs risk taking

ggplot(data, aes(as.factor(sex), risk))+
  geom_boxplot()
#descriptive data 
summary(data)
#data cleaning: deletion of NAs 
data = na.omit(data)
summary(data)
#risk distribution according to Waves 5 and 6 
ggplot(data, aes(as.factor(wave), risk))+
  geom_boxplot()
#risk vs age
library(ggplot2)
ggplot(data, aes(risk, age))+
  geom_point()+
  geom_smooth(method = "lm")
#selected 3 countries: Andorra, Romania, Spain
data1 <- subset(data, country_lab %in% c("Andorra", "Romania", "Spain"))
# 3 risk distribution for 3 countries
ggplot(data1, aes(as.factor(country_lab), risk))+
  geom_boxplot()
#age vs risk depending on country
ggplot(data, aes(age, risk, color = as.factor(country_lab)))+
  geom_point()+
  geom_smooth(method = "lm", se = TRUE)
# read in file that contains hardship indicators manually collected from CIA factbook, WHO, and World Bank 
# (see Supplemental Materials for URL sources)
countryfacts = read.csv("/Users/cristinacandido/Documents/Github/risk_wvs/data/WVS/countryfacts_selection.csv", as.is = TRUE, header = TRUE) 

# Create a vector of labels with the same length as the number of columns in 'countryfacts'
labels <- c("code","country","codeWVS","Homicide","GDP","InfMort","LifeExp","GINI","GenderPEdu","code2")




# Print the result
print(countryfacts)
# Load the dplyr package
library(dplyr)

# Assuming the data frame is called 'data' and the column containing the country information is called 'country'
age_counts <- data %>%
  count(agecat)

# Print the result
print(age_counts)
summary(data)
     sex                 age            country          wave          
 Length:156528      Min.   : 15.00   Min.   : 12.0   Length:156528     
 Class :character   1st Qu.: 28.00   1st Qu.:276.0   Class :character  
 Mode  :character   Median : 39.00   Median :466.0   Mode  :character  
                    Mean   : 41.62   Mean   :477.4                     
                    3rd Qu.: 54.00   3rd Qu.:710.0                     
                    Max.   :102.00   Max.   :894.0                     
      risk.V1       country_lab           risk_ord        agecat         
 Min.   :36.15574   Length:156528      Min.   :1.000   Length:156528     
 1st Qu.:42.42763   Class :character   1st Qu.:2.000   Class :character  
 Median :48.69953   Mode  :character   Median :3.000   Mode  :character  
 Mean   :50.00000                      Mean   :3.207                     
 3rd Qu.:54.97142                      3rd Qu.:4.000                     
 Max.   :67.51521                      Max.   :6.000                     

# Load the dplyr package
library(dplyr)


# Count the number of occurrences of each age category for each country
agepercountries_counts <- data %>%
  group_by(country_lab) %>%
  count(agecat)

# Print the result
print(agepercountries_counts)
NA
# Load the dplyr package if not already loaded
if (!require(dplyr)) {
  install.packages("dplyr")
  library(dplyr)
}

# Count the number of occurrences of each gender for each country
sexpercountries_counts <- data %>%
  group_by(country_lab) %>%
  count(sex)

# Print the result
print(sexpercountries_counts)
NA
# Load the dplyr package if not already loaded
if (!require(dplyr)) {
  install.packages("dplyr")
  library(dplyr)
}

# Group the data by country and calculate the age distribution
age_distribution_per_country <- data %>%
  group_by(country_lab) %>%
  summarize(mean_age = mean(age, na.rm = TRUE),
            median_age = median(age, na.rm = TRUE),
            min_age = min(age, na.rm = TRUE),
            max_age = max(age, na.rm = TRUE))

# Print the result
print(age_distribution_per_country)
NA
# Load the dplyr package if not already loaded
if (!require(dplyr)) {
  install.packages("dplyr")
  library(dplyr)
}

# Group the data by sex and calculate the mean risk for each sex
risk_by_sex <- data %>%
  group_by(sex) %>%
  summarize(mean_risk = mean(risk_ord, na.rm = TRUE))

# Calculate the difference in mean risk between sexes
sex_difference <- diff(risk_by_sex$mean_risk)

# Print the result
print(risk_by_sex)
print(sex_difference)
[1] 0.3975174
# Load the dplyr package if not already loaded
if (!require(dplyr)) {
  install.packages("dplyr")
  library(dplyr)
}

# Group the data by country_lab and calculate the mean risk for each country_lab
risk_by_country_lab <- data %>%
  group_by(country_lab) %>%
  summarize(mean_risk = mean(risk_ord, na.rm = TRUE))

# Print the result
print(risk_by_country_lab)
# Load the dplyr package if not already loaded
if (!require(dplyr)) {
  install.packages("dplyr")
  library(dplyr)
}



# Group the data by age_cat and calculate the mean risk for each age category
risk_by_agecat <- data %>%
  group_by(agecat) %>%
  summarize(mean_risk = mean(risk_ord, na.rm = TRUE))

# Print the result
print(risk_by_agecat)
NA
data
# Load the dplyr package if not already loaded
if (!require(dplyr)) {
  install.packages("dplyr")
  library(dplyr)
}

# Create the 'hardship' column in the 'countryfacts' data frame
countryfacts <- countryfacts %>%
  mutate(hardship = (homiciderate + gdp + infantmortality + lifeexpectancy + gini + femalemale_primedu) / 6)
countryfacts



# View the distribution of the 'hardship_index' column for each country
hardship_index_distribution <- countryfacts %>%
  group_by(label) %>%
  summarize(
    mean = mean(hardship, na.rm = TRUE),
    median = median(hardship, na.rm = TRUE),
    sd = sd(hardship, na.rm = TRUE),
    min = min(hardship, na.rm = TRUE),
    max = max(hardship, na.rm = TRUE),
    n = sum(!is.na(hardship))
  )
Warning: There were 24 warnings in `summarize()`.
The first warning was:
ℹ In argument: `min = min(hardship, na.rm = TRUE)`.
ℹ In group 2: `label = "Andorra"`.
Caused by warning in `min()`:
! no non-missing arguments to min; returning Inf
ℹ Run ]8;;ide:run:dplyr::last_dplyr_warnings()dplyr::last_dplyr_warnings()]8;; to see the 23 remaining warnings.
# Print the result
print(hardship_index_distribution)
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
countryfacts

#Algeria

dataAlgeria <- subset(data, country_lab %in% c("Algeria"))
library(ggplot2)
pAlgeria = ggplot(dataAlgeria, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pAlgeria
model = lm(risk_ord ~ age, dataAlgeria)
summary(model)
data

#Andorra

dataAndorra <- subset(data, country_lab %in% c("Andorra"))
library(ggplot2)
PAndorra = ggplot(dataAndorra, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
PAndorra

country_counts

#Argentina

dataArgentina <- subset(data, country_lab %in% c("Argentina"))
library(ggplot2)
pArgentina = ggplot(dataArgentina, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pArgentina

#Armenia

dataArmenia <- subset(data, country_lab %in% c("Armenia"))
library(ggplot2)
pArmenia = ggplot(dataArmenia, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pArmenia

#Australia

dataAustralia <- subset(data, country_lab %in% c("Australia"))
library(ggplot2)
pAustralia = ggplot(dataAustralia, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pAustralia

#Azerbaijan

dataAzerbaijan <- subset(data, country_lab %in% c("Australia"))
library(ggplot2)
pAzerbaijan = ggplot(dataAzerbaijan, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pAzerbaijan

#Belarus

dataBelarus <- subset(data, country_lab %in% c("Belarus"))
library(ggplot2)
pBelarus = ggplot(dataBelarus, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pBelarus

#Brazil

dataBrazil <- subset(data, country_lab %in% c("Brazil"))
library(ggplot2)
pBrazil = ggplot(dataBrazil, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pBrazil

#Bulgaria

dataBulgaria <- subset(data, country_lab %in% c("Bulgaria"))
library(ggplot2)
pBulgaria = ggplot(dataBulgaria, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pBulgaria

NA
NA
NA

#Burkina Faso

dataBurkinaFaso <- subset(data, country_lab %in% c("Burkina Faso"))
library(ggplot2)
pBurkinaFaso = ggplot(dataBurkinaFaso, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pBurkinaFaso

#Canada

dataCanada <- subset(data, country_lab %in% c("Canada"))
library(ggplot2)
pCanada = ggplot(dataCanada, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pCanada

#Chile

dataChile <- subset(data, country_lab %in% c("Chile"))
library(ggplot2)
pChile = ggplot(dataChile, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pChile

#China

#Colombia

#Cyprus (G)

#Ecuador

#Egypt

#Estonia

dataEstonia <- subset(data, country_lab %in% c("Estonia"))
library(ggplot2)
pEstonia = ggplot(dataEstonia, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pEstonia

#Ethiopia

dataEthiopia <- subset(data, country_lab %in% c("Ethiopia"))
library(ggplot2)
pEthiopia = ggplot(dataEthiopia, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pEthiopia

#Finland

dataFinland <- subset(data, country_lab %in% c("Finland"))
library(ggplot2)
pFinland = ggplot(dataFinland, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pFinland

#France

dataFrance <- subset(data, country_lab %in% c("France"))
library(ggplot2)
pFrance = ggplot(dataFrance, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pFrance

#Georgia

dataGeorgia <- subset(data, country_lab %in% c("Georgia"))
library(ggplot2)
pGeorgia = ggplot(dataGeorgia, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pGeorgia

#Germany

dataGermany <- subset(data, country_lab %in% c("Germany"))
library(ggplot2)
pGermany = ggplot(dataGermany, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pGermany

#Ghana

dataGhana <- subset(data, country_lab %in% c("Ghana"))
library(ggplot2)
pGhana = ggplot(dataGhana, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pGhana

#Great Britain

dataUK <- subset(data, country_lab %in% c("Great Britain"))
library(ggplot2)
pUK = ggplot(dataUK, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pUK

#Haiti

dataHaiti <- subset(data, country_lab %in% c("Haiti"))
library(ggplot2)
pHaiti = ggplot(dataHaiti, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pHaiti

#Hong Kong

dataHongKong <- subset(data, country_lab %in% c("Hong Kong"))
library(ggplot2)
pHongKong = ggplot(dataHongKong, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pHongKong

#Hungary

dataHungary <- subset(data, country_lab %in% c("Hungary"))
library(ggplot2)
pHungary = ggplot(dataHungary, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pHungary

#India

dataIndia <- subset(data, country_lab %in% c("India"))
library(ggplot2)
pIndia = ggplot(dataIndia, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pIndia

#Indonesia

dataIndonesia <- subset(data, country_lab %in% c("Indonesia"))
library(ggplot2)
pIndonesia = ggplot(dataIndonesia, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pIndonesia

#Iran

dataIran <- subset(data, country_lab %in% c("Iran"))
library(ggplot2)
pIran = ggplot(dataIran, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pIran

#Iraq

dataIraq <- subset(data, country_lab %in% c("Iraq"))
library(ggplot2)
pIraq = ggplot(dataIraq, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pIraq

#Japan

dataJapan <- subset(data, country_lab %in% c("Japan"))
library(ggplot2)
pJapan = ggplot(dataJapan, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pJapan

#Jordan

dataJordan <- subset(data, country_lab %in% c("Jordan"))
library(ggplot2)
pJordan = ggplot(dataJordan, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pJordan

#Kazakhstan

dataKazakhstan <- subset(data, country_lab %in% c("Kazakhstan"))
library(ggplot2)
pKazakhstan = ggplot(dataKazakhstan, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pKazakhstan

#Kuwait

dataKuwait <- subset(data, country_lab %in% c("Kuwait"))
library(ggplot2)
pKuwait = ggplot(dataKuwait, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pKuwait

#Kyrgyzstan

dataKyrgyzstan <- subset(data, country_lab %in% c("Kyrgyzstan"))
library(ggplot2)
pKyrgyzstan = ggplot(dataKyrgyzstan, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pKyrgyzstan

#Lebanon

dataLebanon <- subset(data, country_lab %in% c("Lebanon"))
library(ggplot2)
pLebanon = ggplot(dataLebanon, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pLebanon

#Libya

dataLibya <- subset(data, country_lab %in% c("Libya"))
library(ggplot2)
pLibya = ggplot(dataLibya, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pLibya

#Malaysia

dataMalaysia <- subset(data, country_lab %in% c("Malaysia"))
library(ggplot2)
pMalaysia = ggplot(dataMalaysia, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pMalaysia

#Mali

dataMali <- subset(data, country_lab %in% c("Mali"))
library(ggplot2)
pMali = ggplot(dataMali, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pMali

#Mexico

dataMexico <- subset(data, country_lab %in% c("Mexico"))
library(ggplot2)
pMexico = ggplot(dataMexico, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pMexico

#Morocco

dataMorocco <- subset(data, country_lab %in% c("Morocco"))
library(ggplot2)
pMorocco = ggplot(dataMorocco, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pMorocco

#Netherland

dataNetherlands <- subset(data, country_lab %in% c("Netherlands"))
library(ggplot2)
pNetherlands = ggplot(dataNetherlands, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pNetherlands

#New Zealand

dataNewZealand <- subset(data, country_lab %in% c("New Zealand"))
library(ggplot2)
pNewZealand = ggplot(dataNewZealand, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pNewZealand

#Nigeria

dataNigeria <- subset(data, country_lab %in% c("Nigeria"))
library(ggplot2)
pNigeria = ggplot(dataNigeria, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pNigeria

#Norway

dataNorway <- subset(data, country_lab %in% c("Norway"))
library(ggplot2)
pNorway = ggplot(dataNorway, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pNorway

#Pakistan

dataPakistan <- subset(data, country_lab %in% c("Pakistan"))
library(ggplot2)
pPakistan = ggplot(dataPakistan, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pPakistan

#Palestine

dataPalestine <- subset(data, country_lab %in% c("Palestine"))
library(ggplot2)
pPalestine = ggplot(dataPalestine, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pPalestine

#Peru

dataPeru <- subset(data, country_lab %in% c("Peru"))
library(ggplot2)
pPeru = ggplot(dataPeru, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pPeru

#Philippines

dataPhilippines <- subset(data, country_lab %in% c("Philippines"))
library(ggplot2)
pPhilippines = ggplot(dataPhilippines, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pPhilippines

#Poland

dataPoland <- subset(data, country_lab %in% c("Poland"))
library(ggplot2)
pPoland = ggplot(dataPoland, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pPoland

#Qatar

dataQatar <- subset(data, country_lab %in% c("Qatar"))
library(ggplot2)
pQatar = ggplot(dataQatar, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pQatar

#Romania

dataRomania <- subset(data, country_lab %in% c("Romania"))
library(ggplot2)
pRomania = ggplot(dataRomania, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pRomania

#Russia

dataRussia <- subset(data, country_lab %in% c("Russia"))
library(ggplot2)
pRussia = ggplot(dataRussia, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pRussia

#Rwanda

dataRwanda <- subset(data, country_lab %in% c("Rwanda"))
library(ggplot2)
pRwanda = ggplot(dataRwanda, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pRwanda

#Singapore

dataSingapore <- subset(data, country_lab %in% c("Singapore"))
library(ggplot2)
pSingapore = ggplot(dataSingapore, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pSingapore

#Slovenia

dataSlovenia <- subset(data, country_lab %in% c("Slovenia"))
library(ggplot2)
pSlovenia = ggplot(dataSlovenia, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pSlovenia

#South Africa

dataSouthAfrica <- subset(data, country_lab %in% c("South Africa"))
library(ggplot2)
pSouthAfrica = ggplot(dataSouthAfrica, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pSouthAfrica

#South Korea

dataSouthKorea <- subset(data, country_lab %in% c("South Korea"))
library(ggplot2)
pSouthKorea = ggplot(dataSouthKorea, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pSouthKorea

#Spain

dataSpain <- subset(data, country_lab %in% c("Spain"))
library(ggplot2)
pSpain = ggplot(dataSpain, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pSpain

#Sweden

dataSweden <- subset(data, country_lab %in% c("Sweden"))
library(ggplot2)
pSweden = ggplot(dataSweden, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pSweden

#Switzerland

dataSwitzerland <- subset(data, country_lab %in% c("Switzerland"))
library(ggplot2)
pSwitzerland = ggplot(dataSwitzerland, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pSwitzerland

#Taiwan

dataTaiwan <- subset(data, country_lab %in% c("Taiwan"))
library(ggplot2)
pTaiwan = ggplot(dataTaiwan, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pTaiwan

#Thailand

dataThailand <- subset(data, country_lab %in% c("Thailand"))
library(ggplot2)
pThailand = ggplot(dataThailand, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pThailand

#Trinidad and Tobago

dataTrinidad <- subset(data, country_lab %in% c("Trinidad and Tobago"))
library(ggplot2)
pTrinidad = ggplot(dataTrinidad, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pTrinidad

#Tunisia

dataTunisia<- subset(data, country_lab %in% c("Tunisia"))
library(ggplot2)
pTunisia = ggplot(dataTunisia, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pTunisia

#Turkey

dataTurkey <- subset(data, country_lab %in% c("Turkey"))
library(ggplot2)
pTurkey = ggplot(dataTurkey, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pTurkey

#Ukraine

dataUkraine <- subset(data, country_lab %in% c("Ukraine"))
library(ggplot2)
pUkraine = ggplot(dataUkraine, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pUkraine

#United States

dataUS <- subset(data, country_lab %in% c("United States"))
library(ggplot2)
pUS = ggplot(dataUS, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pUS

#Uruguay

dataUruguay <- subset(data, country_lab %in% c("Uruguay"))
library(ggplot2)
pUruguay = ggplot(dataUruguay, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pUruguay

#Uzbekistan

dataUzbekistan <- subset(data, country_lab %in% c("Uzbekistan"))
library(ggplot2)
pUzbekistan = ggplot(dataUzbekistan, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pUzbekistan

#Viet Nam

dataVietNam <- subset(data, country_lab %in% c("Viet Nam"))
library(ggplot2)
pVietNam = ggplot(dataVietNam, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pVietNam

#Yemen

dataYemen <- subset(data, country_lab %in% c("Yemen"))
library(ggplot2)
pYemen = ggplot(dataYemen, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pYemen

#Zambia

dataZambia <- subset(data, country_lab %in% c("Zambia"))
library(ggplot2)
pZambia = ggplot(dataZambia, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pZambia

#Zimbabwe

dataZimbabwe <- subset(data, country_lab %in% c("Zimbabwe"))
library(ggplot2)
pZimbabwe = ggplot(dataZimbabwe, aes(age, risk_ord))+
  geom_point()+
  geom_smooth(method = "lm")
pZimbabwe

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQpWYXJpYWJsZXM6IAoKUmlzawpBZ2UgClNleApDb3VudHJ5CgoKCmBgYHtyfQpsaWJyYXJ5KGRhdGEudGFibGUpCmxpYnJhcnkodGlkeXIpCmBgYAoKI3JlYWQgdGhlIGRhdGEgKFdhdmUgNSkKYGBge3J9CiMgRGF0YSBvZiBXYXZlIDUKCgpXVjVfZGF0YSA8LSByZWFkUkRTKCIvVXNlcnMvY3Jpc3RpbmFjYW5kaWRvL0RvY3VtZW50cy9HaXRodWIvcmlza193dnMvZGF0YS9XVlMvRjAwMDA3OTQ0LVdWNV9EYXRhX1JfdjIwMTgwOTEyLnJkcyIpCgoKIyBDb252ZXJ0IFdWNV9kYXRhLW9iamVjdCBpbiBkYXRhLmZyYW1lIApXVjVfZGF0YV9kZiA8LSBhcy5kYXRhLmZyYW1lKFdWNV9kYXRhKQoKIyBzaG93IGZpcnN0IGZpdmUgY29sdW1ucwpoZWFkKFdWNV9kYXRhX2RmWywgMTo1XSkKYGBgCgojIGNsZWFuIHRoZSBkYXRhIHNldApgYGB7cn0KbGlicmFyeShkcGx5cikKCiNyZW5hbWUgdGhlIHZhcmlhYmxlcwpXVjVfZGF0YSA8LSBXVjVfZGF0YV9kZiAlPiUKICByZW5hbWUoc2V4ID0gVjIzNSwgYWdlID0gVjIzNywgY291bnRyeSA9IFYyLCB3YXZlID0gVjEsIHJpc2sgPSBWODYpCldWNV9kYXRhCgoKI3NlbGVjdCBvbmx5IHRoZSB2YXJpYWJsZXMgb2YgaW50ZXJlc3QKV1Y1X2RhdGEgPC0gV1Y1X2RhdGEgJT4lCiAgc2VsZWN0KHNleCwgYWdlLCBjb3VudHJ5LCB3YXZlLCByaXNrKQpXVjVfZGF0YQpgYGAKCmBgYHtyfQojZGVjb2RlIHRoZSBjb3VudHJ5IG5hbWVzIApjb3VudHJ5bmFtZXMgPSByZWFkLmNzdigiL1VzZXJzL2NyaXN0aW5hY2FuZGlkby9Eb2N1bWVudHMvR2l0aHViL3Jpc2tfd3ZzL2RhdGEvV1ZTL2NvdW50cnluYW1lcy50eHQiLCBoZWFkZXI9RkFMU0UsYXMuaXM9VFJVRSkKY29sbmFtZXMoY291bnRyeW5hbWVzKSA9IGMoImNvZGUiLCAibmFtZSIpCldWNV9kYXRhJGNvdW50cnlfbGFiID0gY291bnRyeW5hbWVzJG5hbWUgW21hdGNoKFdWNV9kYXRhJGNvdW50cnksIGNvdW50cnluYW1lcyRjb2RlKV0KdGFibGUoV1Y1X2RhdGEkY291bnRyeV9sYWIpCldWNV9kYXRhCgoKYGBgCgojUmVhZCBEYXRhc2V0IChXYXZlIDYpCmBgYHtyfQpXVjZfZGF0YSA8LSBsb2FkKCIvVXNlcnMvY3Jpc3RpbmFjYW5kaWRvL0RvY3VtZW50cy9HaXRodWIvcmlza193dnMvZGF0YS9XVlMvV1Y2X0RhdGFfUl92MjAyMDExMTcucmRhdGEiKSAKV1Y2X2RhdGEgPC0gV1Y2X0RhdGFfUl92MjAyMDExMTcgCnByaW50KFdWNl9kYXRhKQpgYGAKCiNyZW5hbWUgdmFyaWFibGVzCmBgYHtyfQpXVjZfZGF0YSA8LSBXVjZfZGF0YSAlPiUKICByZW5hbWUod2F2ZSA9IFYxLCBzZXggPSBWMjQwLCBhZ2UgPSBWMjQyLGNvdW50cnkgPSBWMiwgcmlzayA9IFY3NikKCgojc2VsZWN0IG9ubHkgdGhlIHZhcmlhYmxlcyBvZiBpbnRlcmVzdApXVjZfZGF0YSA8LSBXVjZfZGF0YSAlPiUKICBzZWxlY3Qod2F2ZSwgc2V4LCBhZ2UsIGNvdW50cnksIHNleCxyaXNrKQpXVjZfZGF0YQoKYGBgCgoKI2RlY29kZSBkYXJhc2V0IChXYXZlIDYpCmBgYHtyfQpjb3VudHJ5bmFtZXMgPSByZWFkLmNzdigiL1VzZXJzL2NyaXN0aW5hY2FuZGlkby9Eb2N1bWVudHMvR2l0aHViL3Jpc2tfd3ZzL2RhdGEvV1ZTL2NvdW50cnluYW1lcy50eHQiLCBoZWFkZXI9RkFMU0UsYXMuaXM9VFJVRSkKY29sbmFtZXMoY291bnRyeW5hbWVzKSA9IGMoImNvZGUiLCAibmFtZSIpCldWNl9kYXRhJGNvdW50cnlfbGFiID0gY291bnRyeW5hbWVzJG5hbWUgW21hdGNoKFdWNl9kYXRhJGNvdW50cnksIGNvdW50cnluYW1lcyRjb2RlKV0KdGFibGUoV1Y2X2RhdGEkY291bnRyeV9sYWIpCldWNl9kYXRhCmBgYAoKI2NvbWJpbmUgdGhlIDIgZGF0YXNldCAoV2F2ZSA2ICsgV2F2ZSA1KQpgYGB7cn0KV1Y1X2RhdGEKV1Y2X2RhdGEKZGF0YSA9IHJiaW5kKFdWNV9kYXRhLCBXVjZfZGF0YSkKZGF0YQoKI251bWJlciBvZiBjb3VudHJpZXMKCmxlbmd0aCh1bmlxdWUoZGF0YSRjb3VudHJ5X2xhYikpCmBgYAojZXhjbHVzaW9uIG9mIHBhcnRpY2lwYW50cyBhbmQgb21pc3Npb24gb2YgbWlzc2luZyBkYXRhIChuYSkKYGBge3J9CmRhdGEgPSBzdWJzZXQoZGF0YSwgcmlzayA+IDAgJiBzZXggPiAwICYgYWdlID4wICkKZGF0YV9XYXZlNSA9IHN1YnNldChXVjVfZGF0YSwgcmlzayA+IDAgJiBzZXggPiAwICYgYWdlID4wICkKZGF0YV9XYXZlNiA9IHN1YnNldChXVjZfZGF0YSwgcmlzayA+IDAgJiBzZXggPiAwICYgYWdlID4wKQpkYXRhIDwtIG5hLm9taXQoZGF0YSkKZGF0YV9XYXZlNSA8LSBuYS5vbWl0KGRhdGFfV2F2ZTUpCmRhdGFfV2F2ZTYgPC0gbmEub21pdChkYXRhX1dhdmU2KQoKCgojbnVtYmVyIG9mIHBhcnRpY2lwYW50cyBwZXIgV2F2ZQoKbnJvdyhkYXRhKQpucm93KGRhdGFfV2F2ZTUpCm5yb3coZGF0YV9XYXZlNikKYGBgCmBgYHtyfQojIExvYWQgdGhlIGRwbHlyIHBhY2thZ2UKbGlicmFyeShkcGx5cikKCiMgQXNzdW1pbmcgdGhlIGRhdGEgZnJhbWUgaXMgY2FsbGVkICdkYXRhJyBhbmQgdGhlIGNvbHVtbiBjb250YWluaW5nIHRoZSBjb3VudHJ5IGluZm9ybWF0aW9uIGlzIGNhbGxlZCAnY291bnRyeScKY291bnRyeV9jb3VudHMgPC0gZGF0YSAlPiUKICBjb3VudChjb3VudHJ5X2xhYikKCiMgUHJpbnQgdGhlIHJlc3VsdApwcmludChjb3VudHJ5X2NvdW50cykKCmBgYAoKI251bWJlciBhbmQgbGlzdCBhbmQgcGFydGljaXBhbnRzIHBybyBjb3VudHJpZXMgcHJvIFdhdmUgKGluY2x1ZGluZyBib3RoIFdhdmVzIHRvZ2V0aGVyKQpgYGB7cn0KdGFibGUoZGF0YV9XYXZlNSRjb3VudHJ5X2xhYikKbGVuZ3RoKHVuaXF1ZShkYXRhX1dhdmU1JGNvdW50cnlfbGFiKSkgCnRhYmxlKGRhdGFfV2F2ZTYkY291bnRyeV9sYWIpCmxlbmd0aCh1bmlxdWUoZGF0YV9XYXZlNiRjb3VudHJ5X2xhYikpCmxlbmd0aCh1bmlxdWUoZGF0YSRjb3VudHJ5X2xhYikpIAp0YWJsZShkYXRhJGNvdW50cnlfbGFiKQpgYGAKCgpgYGB7cn0KZGF0YSRyaXNrID0gNiAtIGRhdGEkcmlzayArIDEKZGF0YSRyaXNrX29yZD1kYXRhJHJpc2sgCmRhdGEkcmlzayA9IDEwKnNjYWxlKGRhdGEkcmlzaywgY2VudGVyPVRSVUUsc2NhbGU9VFJVRSkrNTAKZGF0YQoKCmBgYAoKI251bWJlciBvZiBtYWxlcyB2cyBmZW1hbGVzICgxID0gbWFsZXM7IDIgPSBmZW1hbGVzKQpgYGB7cn0KdGFibGUoZGF0YSRzZXgpCnRhYmxlKGRhdGFfV2F2ZTUkc2V4KQp0YWJsZShkYXRhX1dhdmU2JHNleCkKYGBgCgoKYGBge3J9CiNjcmVhdGUgYSBjYXRlZ29yaWNhbCBhZ2UgdmFyaWFibGUKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U8MjBdPSIxNS0xOSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTIwICYgZGF0YSRhZ2UgPDMwXSA9ICIyMC0yOSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTMwICYgZGF0YSRhZ2UgPDQwXSA9ICIzMC0zOSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTQwICYgZGF0YSRhZ2UgPDUwXSA9ICI0MC00OSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTUwICYgZGF0YSRhZ2UgPDYwXSA9ICI1MC01OSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTYwICYgZGF0YSRhZ2UgPDcwXSA9ICI2MC02OSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTcwICYgZGF0YSRhZ2UgPDgwXSA9ICI3MC03OSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTgwXSA9ICI4MCsiCmBgYAoKCiNnZW5kZXIgdmFyaWFibGVzCmBgYHtyfQpkYXRhJHNleFtkYXRhJHNleCA9PSAxXSA8LSAibWFsZSIKZGF0YSRzZXhbZGF0YSRzZXggPT0gMl0gPC0gImZlbWFsZSIKCmRhdGFfV2F2ZTUkc2V4W2RhdGFfV2F2ZTUkc2V4ID09IDFdIDwtICJtYWxlIgpkYXRhX1dhdmU1JHNleFtkYXRhX1dhdmU1JHNleCA9PSAyXSA8LSAiZmVtYWxlIgoKZGF0YV9XYXZlNiRzZXhbZGF0YV9XYXZlNiRzZXggPT0gMV0gPC0gIm1hbGUiCmRhdGFfV2F2ZTYkc2V4W2RhdGFfV2F2ZTYkc2V4ID09IDJdIDwtICJmZW1hbGUiCgojYXZlcmFnZSBhZ2Ugb2YgcGFydGljaXBhbnRzCm1lYW4oZGF0YSRhZ2UpCm1lZGlhbihkYXRhJGFnZSkKYGBgCgojd2F2ZSB2YXJpYWJsZXMKYGBge3J9CmRhdGEkd2F2ZVtkYXRhJHdhdmUgPT0gNV0gPC0gIldhdmUgNSIKZGF0YSR3YXZlW2RhdGEkd2F2ZSA9PSA2XSA8LSAiV2F2ZSA2IgpkYXRhCmBgYAoKCiNhZ2UgcmFuZ2UKYGBge3J9CnJhbmdlKGRhdGEkYWdlKSAKcmFuZ2UoZGF0YV9XYXZlNSRhZ2UpCnJhbmdlKGRhdGFfV2F2ZTYkYWdlKQpgYGAKI3Jpc2sgdGFraW5nIEZyZXF1ZW5jeQpgYGB7cn0KbGlicmFyeShnZ3Bsb3QyKQpnZ3Bsb3QoZGF0YSwgYWVzKHggPSByaXNrKSkgKwogIGdlb21faGlzdG9ncmFtKGJpbndpZHRoID0gMC41LCBmaWxsID0gImxpZ2h0Ymx1ZSIsIGNvbG9yID0gImJsYWNrIikgKwogIGxhYnMoeCA9ICJSaXNrIFRha2luZyIsIHkgPSAiRnJlcXVlbmN5IiwgdGl0bGUgPSAiSGlzdG9ncmFtIG9mIFJpc2sgVGFraW5nIikgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKI2FnZSBmcmVxdWVuY3kKYGBge3J9CmdncGxvdChkYXRhLCBhZXMoeCA9IGFnZSkpICsKICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aCA9IDAuNSwgZmlsbCA9ICJsaWdodGJsdWUiLCBjb2xvciA9ICJibGFjayIpICsKICBsYWJzKHggPSAiQWdlIiwgeSA9ICJGcmVxdWVuY3kiLCB0aXRsZSA9ICJIaXN0b2dyYW0gb2YgQWdlIERpc3RyaWJ1dGlvbm4iKSArCiAgdGhlbWVfbWluaW1hbCgpCmBgYAojYWdlIHZzIHJpc2sgdGFraW5nCmBgYHtyfQoKZ2dwbG90KGRhdGEsIGFlcyh4ID0gYWdlY2F0LCB5ID0gcmlzaykpICsKICBnZW9tX2JveHBsb3QoKSArCiAgbGFicyh0aXRsZSA9ICJCb3hwbG90IG9mIFJpc2sgYW5kIEFkdmVudHVyZSBieSBBZ2UiLAogICAgICAgeCA9ICJBZ2UiLAogICAgICAgeSA9ICJSaXNrIGFuZCBBZHZlbnR1cmUiKSArCiAgdGhlbWVfbWluaW1hbCgpCgoKYGBgCiNzZXggdnMgcmlzayB0YWtpbmcKYGBge3J9CmdncGxvdChkYXRhLCBhZXMoYXMuZmFjdG9yKHNleCksIHJpc2spKSsKICBnZW9tX2JveHBsb3QoKQoKYGBgCmBgYHtyfQojZGVzY3JpcHRpdmUgZGF0YSAKc3VtbWFyeShkYXRhKQpgYGAKYGBge3J9CiNkYXRhIGNsZWFuaW5nOiBkZWxldGlvbiBvZiBOQXMgCmRhdGEgPSBuYS5vbWl0KGRhdGEpCnN1bW1hcnkoZGF0YSkKYGBgCmBgYHtyfQojcmlzayBkaXN0cmlidXRpb24gYWNjb3JkaW5nIHRvIFdhdmVzIDUgYW5kIDYgCmdncGxvdChkYXRhLCBhZXMoYXMuZmFjdG9yKHdhdmUpLCByaXNrKSkrCiAgZ2VvbV9ib3hwbG90KCkKYGBgCmBgYHtyfQojcmlzayB2cyBhZ2UKbGlicmFyeShnZ3Bsb3QyKQpnZ3Bsb3QoZGF0YSwgYWVzKHJpc2ssIGFnZSkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpgYGAKCgpgYGB7cn0KI3NlbGVjdGVkIDMgY291bnRyaWVzOiBBbmRvcnJhLCBSb21hbmlhLCBTcGFpbgpkYXRhMSA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJBbmRvcnJhIiwgIlJvbWFuaWEiLCAiU3BhaW4iKSkKIyAzIHJpc2sgZGlzdHJpYnV0aW9uIGZvciAzIGNvdW50cmllcwpnZ3Bsb3QoZGF0YTEsIGFlcyhhcy5mYWN0b3IoY291bnRyeV9sYWIpLCByaXNrKSkrCiAgZ2VvbV9ib3hwbG90KCkKYGBgCmBgYHtyfQojYWdlIHZzIHJpc2sgZGVwZW5kaW5nIG9uIGNvdW50cnkKZ2dwbG90KGRhdGEsIGFlcyhhZ2UsIHJpc2ssIGNvbG9yID0gYXMuZmFjdG9yKGNvdW50cnlfbGFiKSkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iLCBzZSA9IFRSVUUpCmBgYApgYGB7cn0KYGBgCgpgYGB7cn0KIyByZWFkIGluIGZpbGUgdGhhdCBjb250YWlucyBoYXJkc2hpcCBpbmRpY2F0b3JzIG1hbnVhbGx5IGNvbGxlY3RlZCBmcm9tIENJQSBmYWN0Ym9vaywgV0hPLCBhbmQgV29ybGQgQmFuayAKIyAoc2VlIFN1cHBsZW1lbnRhbCBNYXRlcmlhbHMgZm9yIFVSTCBzb3VyY2VzKQpjb3VudHJ5ZmFjdHMgPSByZWFkLmNzdigiL1VzZXJzL2NyaXN0aW5hY2FuZGlkby9Eb2N1bWVudHMvR2l0aHViL3Jpc2tfd3ZzL2RhdGEvV1ZTL2NvdW50cnlmYWN0c19zZWxlY3Rpb24uY3N2IiwgYXMuaXMgPSBUUlVFLCBoZWFkZXIgPSBUUlVFKSAKCiMgQ3JlYXRlIGEgdmVjdG9yIG9mIGxhYmVscyB3aXRoIHRoZSBzYW1lIGxlbmd0aCBhcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4gJ2NvdW50cnlmYWN0cycKbGFiZWxzIDwtIGMoImNvZGUiLCJjb3VudHJ5IiwiY29kZVdWUyIsIkhvbWljaWRlIiwiR0RQIiwiSW5mTW9ydCIsIkxpZmVFeHAiLCJHSU5JIiwiR2VuZGVyUEVkdSIsImNvZGUyIikKCgoKCiMgUHJpbnQgdGhlIHJlc3VsdApwcmludChjb3VudHJ5ZmFjdHMpCmBgYAoKYGBge3J9CiMgTG9hZCB0aGUgZHBseXIgcGFja2FnZQpsaWJyYXJ5KGRwbHlyKQoKIyBBc3N1bWluZyB0aGUgZGF0YSBmcmFtZSBpcyBjYWxsZWQgJ2RhdGEnIGFuZCB0aGUgY29sdW1uIGNvbnRhaW5pbmcgdGhlIGNvdW50cnkgaW5mb3JtYXRpb24gaXMgY2FsbGVkICdjb3VudHJ5JwphZ2VfY291bnRzIDwtIGRhdGEgJT4lCiAgY291bnQoYWdlY2F0KQoKIyBQcmludCB0aGUgcmVzdWx0CnByaW50KGFnZV9jb3VudHMpCmBgYApgYGB7cn0Kc3VtbWFyeShkYXRhKQpgYGAKCgpgYGB7cn0KCiMgTG9hZCB0aGUgZHBseXIgcGFja2FnZQpsaWJyYXJ5KGRwbHlyKQoKCiMgQ291bnQgdGhlIG51bWJlciBvZiBvY2N1cnJlbmNlcyBvZiBlYWNoIGFnZSBjYXRlZ29yeSBmb3IgZWFjaCBjb3VudHJ5CmFnZXBlcmNvdW50cmllc19jb3VudHMgPC0gZGF0YSAlPiUKICBncm91cF9ieShjb3VudHJ5X2xhYikgJT4lCiAgY291bnQoYWdlY2F0KQoKIyBQcmludCB0aGUgcmVzdWx0CnByaW50KGFnZXBlcmNvdW50cmllc19jb3VudHMpCgpgYGAKCmBgYHtyfQojIExvYWQgdGhlIGRwbHlyIHBhY2thZ2UgaWYgbm90IGFscmVhZHkgbG9hZGVkCmlmICghcmVxdWlyZShkcGx5cikpIHsKICBpbnN0YWxsLnBhY2thZ2VzKCJkcGx5ciIpCiAgbGlicmFyeShkcGx5cikKfQoKIyBDb3VudCB0aGUgbnVtYmVyIG9mIG9jY3VycmVuY2VzIG9mIGVhY2ggZ2VuZGVyIGZvciBlYWNoIGNvdW50cnkKc2V4cGVyY291bnRyaWVzX2NvdW50cyA8LSBkYXRhICU+JQogIGdyb3VwX2J5KGNvdW50cnlfbGFiKSAlPiUKICBjb3VudChzZXgpCgojIFByaW50IHRoZSByZXN1bHQKcHJpbnQoc2V4cGVyY291bnRyaWVzX2NvdW50cykKCmBgYApgYGB7cn0KIyBMb2FkIHRoZSBkcGx5ciBwYWNrYWdlIGlmIG5vdCBhbHJlYWR5IGxvYWRlZAppZiAoIXJlcXVpcmUoZHBseXIpKSB7CiAgaW5zdGFsbC5wYWNrYWdlcygiZHBseXIiKQogIGxpYnJhcnkoZHBseXIpCn0KCiMgR3JvdXAgdGhlIGRhdGEgYnkgY291bnRyeSBhbmQgY2FsY3VsYXRlIHRoZSBhZ2UgZGlzdHJpYnV0aW9uCmFnZV9kaXN0cmlidXRpb25fcGVyX2NvdW50cnkgPC0gZGF0YSAlPiUKICBncm91cF9ieShjb3VudHJ5X2xhYikgJT4lCiAgc3VtbWFyaXplKG1lYW5fYWdlID0gbWVhbihhZ2UsIG5hLnJtID0gVFJVRSksCiAgICAgICAgICAgIG1lZGlhbl9hZ2UgPSBtZWRpYW4oYWdlLCBuYS5ybSA9IFRSVUUpLAogICAgICAgICAgICBtaW5fYWdlID0gbWluKGFnZSwgbmEucm0gPSBUUlVFKSwKICAgICAgICAgICAgbWF4X2FnZSA9IG1heChhZ2UsIG5hLnJtID0gVFJVRSkpCgojIFByaW50IHRoZSByZXN1bHQKcHJpbnQoYWdlX2Rpc3RyaWJ1dGlvbl9wZXJfY291bnRyeSkKCmBgYAoKYGBge3J9CiMgTG9hZCB0aGUgZHBseXIgcGFja2FnZSBpZiBub3QgYWxyZWFkeSBsb2FkZWQKaWYgKCFyZXF1aXJlKGRwbHlyKSkgewogIGluc3RhbGwucGFja2FnZXMoImRwbHlyIikKICBsaWJyYXJ5KGRwbHlyKQp9CgojIEdyb3VwIHRoZSBkYXRhIGJ5IHNleCBhbmQgY2FsY3VsYXRlIHRoZSBtZWFuIHJpc2sgZm9yIGVhY2ggc2V4CnJpc2tfYnlfc2V4IDwtIGRhdGEgJT4lCiAgZ3JvdXBfYnkoc2V4KSAlPiUKICBzdW1tYXJpemUobWVhbl9yaXNrID0gbWVhbihyaXNrX29yZCwgbmEucm0gPSBUUlVFKSkKCiMgQ2FsY3VsYXRlIHRoZSBkaWZmZXJlbmNlIGluIG1lYW4gcmlzayBiZXR3ZWVuIHNleGVzCnNleF9kaWZmZXJlbmNlIDwtIGRpZmYocmlza19ieV9zZXgkbWVhbl9yaXNrKQoKIyBQcmludCB0aGUgcmVzdWx0CnByaW50KHJpc2tfYnlfc2V4KQpwcmludChzZXhfZGlmZmVyZW5jZSkKCgpgYGAKYGBge3J9CiMgTG9hZCB0aGUgZHBseXIgcGFja2FnZSBpZiBub3QgYWxyZWFkeSBsb2FkZWQKaWYgKCFyZXF1aXJlKGRwbHlyKSkgewogIGluc3RhbGwucGFja2FnZXMoImRwbHlyIikKICBsaWJyYXJ5KGRwbHlyKQp9CgojIEdyb3VwIHRoZSBkYXRhIGJ5IGNvdW50cnlfbGFiIGFuZCBjYWxjdWxhdGUgdGhlIG1lYW4gcmlzayBmb3IgZWFjaCBjb3VudHJ5X2xhYgpyaXNrX2J5X2NvdW50cnlfbGFiIDwtIGRhdGEgJT4lCiAgZ3JvdXBfYnkoY291bnRyeV9sYWIpICU+JQogIHN1bW1hcml6ZShtZWFuX3Jpc2sgPSBtZWFuKHJpc2tfb3JkLCBuYS5ybSA9IFRSVUUpKQoKIyBQcmludCB0aGUgcmVzdWx0CnByaW50KHJpc2tfYnlfY291bnRyeV9sYWIpCmBgYAoKYGBge3J9CiMgTG9hZCB0aGUgZHBseXIgcGFja2FnZSBpZiBub3QgYWxyZWFkeSBsb2FkZWQKaWYgKCFyZXF1aXJlKGRwbHlyKSkgewogIGluc3RhbGwucGFja2FnZXMoImRwbHlyIikKICBsaWJyYXJ5KGRwbHlyKQp9CgoKCiMgR3JvdXAgdGhlIGRhdGEgYnkgYWdlX2NhdCBhbmQgY2FsY3VsYXRlIHRoZSBtZWFuIHJpc2sgZm9yIGVhY2ggYWdlIGNhdGVnb3J5CnJpc2tfYnlfYWdlY2F0IDwtIGRhdGEgJT4lCiAgZ3JvdXBfYnkoYWdlY2F0KSAlPiUKICBzdW1tYXJpemUobWVhbl9yaXNrID0gbWVhbihyaXNrX29yZCwgbmEucm0gPSBUUlVFKSkKCiMgUHJpbnQgdGhlIHJlc3VsdApwcmludChyaXNrX2J5X2FnZWNhdCkKCmBgYAoKCmBgYHtyfQpkYXRhCmBgYApgYGB7cn0KIyBMb2FkIHRoZSBkcGx5ciBwYWNrYWdlIGlmIG5vdCBhbHJlYWR5IGxvYWRlZAppZiAoIXJlcXVpcmUoZHBseXIpKSB7CiAgaW5zdGFsbC5wYWNrYWdlcygiZHBseXIiKQogIGxpYnJhcnkoZHBseXIpCn0KCiMgQ3JlYXRlIHRoZSAnaGFyZHNoaXAnIGNvbHVtbiBpbiB0aGUgJ2NvdW50cnlmYWN0cycgZGF0YSBmcmFtZQpjb3VudHJ5ZmFjdHMgPC0gY291bnRyeWZhY3RzICU+JQogIG11dGF0ZShoYXJkc2hpcCA9IChob21pY2lkZXJhdGUgKyBnZHAgKyBpbmZhbnRtb3J0YWxpdHkgKyBsaWZlZXhwZWN0YW5jeSArIGdpbmkgKyBmZW1hbGVtYWxlX3ByaW1lZHUpIC8gNikKY291bnRyeWZhY3RzCgoKCiMgVmlldyB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSAnaGFyZHNoaXBfaW5kZXgnIGNvbHVtbiBmb3IgZWFjaCBjb3VudHJ5CmhhcmRzaGlwX2luZGV4X2Rpc3RyaWJ1dGlvbiA8LSBjb3VudHJ5ZmFjdHMgJT4lCiAgZ3JvdXBfYnkobGFiZWwpICU+JQogIHN1bW1hcml6ZSgKICAgIG1lYW4gPSBtZWFuKGhhcmRzaGlwLCBuYS5ybSA9IFRSVUUpLAogICAgbWVkaWFuID0gbWVkaWFuKGhhcmRzaGlwLCBuYS5ybSA9IFRSVUUpLAogICAgc2QgPSBzZChoYXJkc2hpcCwgbmEucm0gPSBUUlVFKSwKICAgIG1pbiA9IG1pbihoYXJkc2hpcCwgbmEucm0gPSBUUlVFKSwKICAgIG1heCA9IG1heChoYXJkc2hpcCwgbmEucm0gPSBUUlVFKSwKICAgIG4gPSBzdW0oIWlzLm5hKGhhcmRzaGlwKSkKICApCgojIFByaW50IHRoZSByZXN1bHQKcHJpbnQoaGFyZHNoaXBfaW5kZXhfZGlzdHJpYnV0aW9uKQoKCgogIAoKCgoKCgoKCgpgYGAKCmBgYHtyfQpjb3VudHJ5ZmFjdHMKYGBgCiNBbGdlcmlhIApgYGB7cn0KZGF0YUFsZ2VyaWEgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiQWxnZXJpYSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBBbGdlcmlhID0gZ2dwbG90KGRhdGFBbGdlcmlhLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwQWxnZXJpYQptb2RlbCA9IGxtKHJpc2tfb3JkIH4gYWdlLCBkYXRhQWxnZXJpYSkKc3VtbWFyeShtb2RlbCkKYGBgCgoKYGBge3J9CmRhdGFBbGdlcmlhCmBgYAojQW5kb3JyYQpgYGB7cn0KZGF0YUFuZG9ycmEgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiQW5kb3JyYSIpKQpsaWJyYXJ5KGdncGxvdDIpClBBbmRvcnJhID0gZ2dwbG90KGRhdGFBbmRvcnJhLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpQQW5kb3JyYQpgYGAKYGBge3J9CmNvdW50cnlfY291bnRzCmBgYAojQXJnZW50aW5hCmBgYHtyfQpkYXRhQXJnZW50aW5hIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkFyZ2VudGluYSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBBcmdlbnRpbmEgPSBnZ3Bsb3QoZGF0YUFyZ2VudGluYSwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcEFyZ2VudGluYQpgYGAKI0FybWVuaWEKYGBge3J9CmRhdGFBcm1lbmlhIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkFybWVuaWEiKSkKbGlicmFyeShnZ3Bsb3QyKQpwQXJtZW5pYSA9IGdncGxvdChkYXRhQXJtZW5pYSwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcEFybWVuaWEKCmBgYAojQXVzdHJhbGlhCmBgYHtyfQpkYXRhQXVzdHJhbGlhIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkF1c3RyYWxpYSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBBdXN0cmFsaWEgPSBnZ3Bsb3QoZGF0YUF1c3RyYWxpYSwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcEF1c3RyYWxpYQpgYGAKI0F6ZXJiYWlqYW4KYGBge3J9CmRhdGFBemVyYmFpamFuIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkF1c3RyYWxpYSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBBemVyYmFpamFuID0gZ2dwbG90KGRhdGFBemVyYmFpamFuLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwQXplcmJhaWphbgpgYGAKI0JlbGFydXMKYGBge3J9CmRhdGFCZWxhcnVzIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkJlbGFydXMiKSkKbGlicmFyeShnZ3Bsb3QyKQpwQmVsYXJ1cyA9IGdncGxvdChkYXRhQmVsYXJ1cywgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcEJlbGFydXMKYGBgCiNCcmF6aWwKYGBge3J9CmRhdGFCcmF6aWwgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiQnJhemlsIikpCmxpYnJhcnkoZ2dwbG90MikKcEJyYXppbCA9IGdncGxvdChkYXRhQnJhemlsLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwQnJhemlsCmBgYAojQnVsZ2FyaWEKYGBge3J9CmRhdGFCdWxnYXJpYSA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJCdWxnYXJpYSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBCdWxnYXJpYSA9IGdncGxvdChkYXRhQnVsZ2FyaWEsIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBCdWxnYXJpYQoKCgpgYGAKI0J1cmtpbmEgRmFzbwpgYGB7cn0KZGF0YUJ1cmtpbmFGYXNvIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkJ1cmtpbmEgRmFzbyIpKQpsaWJyYXJ5KGdncGxvdDIpCnBCdXJraW5hRmFzbyA9IGdncGxvdChkYXRhQnVya2luYUZhc28sIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBCdXJraW5hRmFzbwpgYGAKI0NhbmFkYQpgYGB7cn0KZGF0YUNhbmFkYSA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJDYW5hZGEiKSkKbGlicmFyeShnZ3Bsb3QyKQpwQ2FuYWRhID0gZ2dwbG90KGRhdGFDYW5hZGEsIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBDYW5hZGEKYGBgCiNDaGlsZQpgYGB7cn0KZGF0YUNoaWxlIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkNoaWxlIikpCmxpYnJhcnkoZ2dwbG90MikKcENoaWxlID0gZ2dwbG90KGRhdGFDaGlsZSwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcENoaWxlCmBgYAojQ2hpbmEKYGBge3J9CmRhdGFDaGluYSA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJDaGluYSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBDaGluYSA9IGdncGxvdChkYXRhQ2hpbmEsIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBDaGluYQpgYGAKI0NvbG9tYmlhCmBgYHtyfQpkYXRhQ29sb21iaWEgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiQ29sb21iaWEiKSkKbGlicmFyeShnZ3Bsb3QyKQpwQ29sb21iaWEgPSBnZ3Bsb3QoZGF0YUNvbG9tYmlhLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwQ29sb21iaWEKYGBgCiNDeXBydXMgKEcpCmBgYHtyfQpkYXRhQ3lwcnVzIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkN5cHJ1cyAoRykiKSkKbGlicmFyeShnZ3Bsb3QyKQpwQ3lwcnVzID0gZ2dwbG90KGRhdGFDeXBydXMsIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBDeXBydXMKYGBgCiNFY3VhZG9yCmBgYHtyfQpkYXRhRWN1YWRvciA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJFY3VhZG9yIikpCmxpYnJhcnkoZ2dwbG90MikKcEVjdWFkb3IgPSBnZ3Bsb3QoZGF0YUVjdWFkb3IsIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBFY3VhZG9yCmBgYAojRWd5cHQKYGBge3J9CmRhdGFFZ3lwdCA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJFZ3lwdCIpKQpsaWJyYXJ5KGdncGxvdDIpCnBFZ3lwdCA9IGdncGxvdChkYXRhRWd5cHQsIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBFZ3lwdApgYGAKI0VzdG9uaWEKYGBge3J9CmRhdGFFc3RvbmlhIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkVzdG9uaWEiKSkKbGlicmFyeShnZ3Bsb3QyKQpwRXN0b25pYSA9IGdncGxvdChkYXRhRXN0b25pYSwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcEVzdG9uaWEKYGBgCiNFdGhpb3BpYQpgYGB7cn0KZGF0YUV0aGlvcGlhIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkV0aGlvcGlhIikpCmxpYnJhcnkoZ2dwbG90MikKcEV0aGlvcGlhID0gZ2dwbG90KGRhdGFFdGhpb3BpYSwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcEV0aGlvcGlhCmBgYAojRmlubGFuZApgYGB7cn0KZGF0YUZpbmxhbmQgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiRmlubGFuZCIpKQpsaWJyYXJ5KGdncGxvdDIpCnBGaW5sYW5kID0gZ2dwbG90KGRhdGFGaW5sYW5kLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwRmlubGFuZApgYGAKI0ZyYW5jZQpgYGB7cn0KZGF0YUZyYW5jZSA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJGcmFuY2UiKSkKbGlicmFyeShnZ3Bsb3QyKQpwRnJhbmNlID0gZ2dwbG90KGRhdGFGcmFuY2UsIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBGcmFuY2UKYGBgCgojR2VvcmdpYQpgYGB7cn0KZGF0YUdlb3JnaWEgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiR2VvcmdpYSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBHZW9yZ2lhID0gZ2dwbG90KGRhdGFHZW9yZ2lhLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwR2VvcmdpYQpgYGAKCiNHZXJtYW55CmBgYHtyfQpkYXRhR2VybWFueSA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJHZXJtYW55IikpCmxpYnJhcnkoZ2dwbG90MikKcEdlcm1hbnkgPSBnZ3Bsb3QoZGF0YUdlcm1hbnksIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBHZXJtYW55CmBgYAoKI0doYW5hCmBgYHtyfQpkYXRhR2hhbmEgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiR2hhbmEiKSkKbGlicmFyeShnZ3Bsb3QyKQpwR2hhbmEgPSBnZ3Bsb3QoZGF0YUdoYW5hLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwR2hhbmEKYGBgCgojR3JlYXQgQnJpdGFpbgpgYGB7cn0KZGF0YVVLIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkdyZWF0IEJyaXRhaW4iKSkKbGlicmFyeShnZ3Bsb3QyKQpwVUsgPSBnZ3Bsb3QoZGF0YVVLLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwVUsKYGBgCgojSGFpdGkKYGBge3J9CmRhdGFIYWl0aSA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJIYWl0aSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBIYWl0aSA9IGdncGxvdChkYXRhSGFpdGksIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBIYWl0aQpgYGAKI0hvbmcgS29uZwpgYGB7cn0KZGF0YUhvbmdLb25nIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkhvbmcgS29uZyIpKQpsaWJyYXJ5KGdncGxvdDIpCnBIb25nS29uZyA9IGdncGxvdChkYXRhSG9uZ0tvbmcsIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBIb25nS29uZwpgYGAKI0h1bmdhcnkKYGBge3J9CmRhdGFIdW5nYXJ5IDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkh1bmdhcnkiKSkKbGlicmFyeShnZ3Bsb3QyKQpwSHVuZ2FyeSA9IGdncGxvdChkYXRhSHVuZ2FyeSwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcEh1bmdhcnkKYGBgCiNJbmRpYQpgYGB7cn0KZGF0YUluZGlhIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkluZGlhIikpCmxpYnJhcnkoZ2dwbG90MikKcEluZGlhID0gZ2dwbG90KGRhdGFJbmRpYSwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcEluZGlhCmBgYAojSW5kb25lc2lhCmBgYHtyfQpkYXRhSW5kb25lc2lhIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkluZG9uZXNpYSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBJbmRvbmVzaWEgPSBnZ3Bsb3QoZGF0YUluZG9uZXNpYSwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcEluZG9uZXNpYQpgYGAKCiNJcmFuCmBgYHtyfQpkYXRhSXJhbiA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJJcmFuIikpCmxpYnJhcnkoZ2dwbG90MikKcElyYW4gPSBnZ3Bsb3QoZGF0YUlyYW4sIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBJcmFuCmBgYAojSXJhcQpgYGB7cn0KZGF0YUlyYXEgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiSXJhcSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBJcmFxID0gZ2dwbG90KGRhdGFJcmFxLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwSXJhcQpgYGAKCiNKYXBhbgpgYGB7cn0KZGF0YUphcGFuIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkphcGFuIikpCmxpYnJhcnkoZ2dwbG90MikKcEphcGFuID0gZ2dwbG90KGRhdGFKYXBhbiwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcEphcGFuCmBgYAoKI0pvcmRhbgpgYGB7cn0KZGF0YUpvcmRhbiA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJKb3JkYW4iKSkKbGlicmFyeShnZ3Bsb3QyKQpwSm9yZGFuID0gZ2dwbG90KGRhdGFKb3JkYW4sIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBKb3JkYW4KYGBgCgojS2F6YWtoc3RhbgpgYGB7cn0KZGF0YUthemFraHN0YW4gPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiS2F6YWtoc3RhbiIpKQpsaWJyYXJ5KGdncGxvdDIpCnBLYXpha2hzdGFuID0gZ2dwbG90KGRhdGFLYXpha2hzdGFuLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwS2F6YWtoc3RhbgpgYGAKI0t1d2FpdApgYGB7cn0KZGF0YUt1d2FpdCA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJLdXdhaXQiKSkKbGlicmFyeShnZ3Bsb3QyKQpwS3V3YWl0ID0gZ2dwbG90KGRhdGFLdXdhaXQsIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBLdXdhaXQKYGBgCiNLeXJneXpzdGFuCmBgYHtyfQpkYXRhS3lyZ3l6c3RhbiA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJLeXJneXpzdGFuIikpCmxpYnJhcnkoZ2dwbG90MikKcEt5cmd5enN0YW4gPSBnZ3Bsb3QoZGF0YUt5cmd5enN0YW4sIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBLeXJneXpzdGFuCmBgYAoKI0xlYmFub24KYGBge3J9CmRhdGFMZWJhbm9uIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkxlYmFub24iKSkKbGlicmFyeShnZ3Bsb3QyKQpwTGViYW5vbiA9IGdncGxvdChkYXRhTGViYW5vbiwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcExlYmFub24KYGBgCiNMaWJ5YQpgYGB7cn0KZGF0YUxpYnlhIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIkxpYnlhIikpCmxpYnJhcnkoZ2dwbG90MikKcExpYnlhID0gZ2dwbG90KGRhdGFMaWJ5YSwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcExpYnlhCmBgYAoKI01hbGF5c2lhCmBgYHtyfQpkYXRhTWFsYXlzaWEgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiTWFsYXlzaWEiKSkKbGlicmFyeShnZ3Bsb3QyKQpwTWFsYXlzaWEgPSBnZ3Bsb3QoZGF0YU1hbGF5c2lhLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwTWFsYXlzaWEKYGBgCiNNYWxpCmBgYHtyfQpkYXRhTWFsaSA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJNYWxpIikpCmxpYnJhcnkoZ2dwbG90MikKcE1hbGkgPSBnZ3Bsb3QoZGF0YU1hbGksIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBNYWxpCmBgYAoKI01leGljbwpgYGB7cn0KZGF0YU1leGljbyA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJNZXhpY28iKSkKbGlicmFyeShnZ3Bsb3QyKQpwTWV4aWNvID0gZ2dwbG90KGRhdGFNZXhpY28sIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBNZXhpY28KYGBgCiNNb3JvY2NvCmBgYHtyfQpkYXRhTW9yb2NjbyA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJNb3JvY2NvIikpCmxpYnJhcnkoZ2dwbG90MikKcE1vcm9jY28gPSBnZ3Bsb3QoZGF0YU1vcm9jY28sIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBNb3JvY2NvCmBgYAojTmV0aGVybGFuZApgYGB7cn0KZGF0YU5ldGhlcmxhbmRzIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIk5ldGhlcmxhbmRzIikpCmxpYnJhcnkoZ2dwbG90MikKcE5ldGhlcmxhbmRzID0gZ2dwbG90KGRhdGFOZXRoZXJsYW5kcywgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcE5ldGhlcmxhbmRzCmBgYAojTmV3IFplYWxhbmQKYGBge3J9CmRhdGFOZXdaZWFsYW5kIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIk5ldyBaZWFsYW5kIikpCmxpYnJhcnkoZ2dwbG90MikKcE5ld1plYWxhbmQgPSBnZ3Bsb3QoZGF0YU5ld1plYWxhbmQsIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBOZXdaZWFsYW5kCmBgYAojTmlnZXJpYQpgYGB7cn0KZGF0YU5pZ2VyaWEgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiTmlnZXJpYSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBOaWdlcmlhID0gZ2dwbG90KGRhdGFOaWdlcmlhLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwTmlnZXJpYQpgYGAKCiNOb3J3YXkgCmBgYHtyfQpkYXRhTm9yd2F5IDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIk5vcndheSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBOb3J3YXkgPSBnZ3Bsb3QoZGF0YU5vcndheSwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcE5vcndheQpgYGAKI1Bha2lzdGFuCmBgYHtyfQpkYXRhUGFraXN0YW4gPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiUGFraXN0YW4iKSkKbGlicmFyeShnZ3Bsb3QyKQpwUGFraXN0YW4gPSBnZ3Bsb3QoZGF0YVBha2lzdGFuLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwUGFraXN0YW4KYGBgCiNQYWxlc3RpbmUKYGBge3J9CmRhdGFQYWxlc3RpbmUgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiUGFsZXN0aW5lIikpCmxpYnJhcnkoZ2dwbG90MikKcFBhbGVzdGluZSA9IGdncGxvdChkYXRhUGFsZXN0aW5lLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwUGFsZXN0aW5lCmBgYAojUGVydQpgYGB7cn0KZGF0YVBlcnUgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiUGVydSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBQZXJ1ID0gZ2dwbG90KGRhdGFQZXJ1LCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwUGVydQpgYGAKCiNQaGlsaXBwaW5lcyAKYGBge3J9CmRhdGFQaGlsaXBwaW5lcyA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJQaGlsaXBwaW5lcyIpKQpsaWJyYXJ5KGdncGxvdDIpCnBQaGlsaXBwaW5lcyA9IGdncGxvdChkYXRhUGhpbGlwcGluZXMsIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBQaGlsaXBwaW5lcwpgYGAKCiNQb2xhbmQKYGBge3J9CmRhdGFQb2xhbmQgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiUG9sYW5kIikpCmxpYnJhcnkoZ2dwbG90MikKcFBvbGFuZCA9IGdncGxvdChkYXRhUG9sYW5kLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwUG9sYW5kCmBgYAojUWF0YXIKYGBge3J9CmRhdGFRYXRhciA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJRYXRhciIpKQpsaWJyYXJ5KGdncGxvdDIpCnBRYXRhciA9IGdncGxvdChkYXRhUWF0YXIsIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBRYXRhcgpgYGAKI1JvbWFuaWEKYGBge3J9CmRhdGFSb21hbmlhIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIlJvbWFuaWEiKSkKbGlicmFyeShnZ3Bsb3QyKQpwUm9tYW5pYSA9IGdncGxvdChkYXRhUm9tYW5pYSwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcFJvbWFuaWEKYGBgCiNSdXNzaWEKYGBge3J9CmRhdGFSdXNzaWEgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiUnVzc2lhIikpCmxpYnJhcnkoZ2dwbG90MikKcFJ1c3NpYSA9IGdncGxvdChkYXRhUnVzc2lhLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwUnVzc2lhCmBgYAojUndhbmRhCmBgYHtyfQpkYXRhUndhbmRhIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIlJ3YW5kYSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBSd2FuZGEgPSBnZ3Bsb3QoZGF0YVJ3YW5kYSwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcFJ3YW5kYQpgYGAKI1NpbmdhcG9yZQpgYGB7cn0KZGF0YVNpbmdhcG9yZSA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJTaW5nYXBvcmUiKSkKbGlicmFyeShnZ3Bsb3QyKQpwU2luZ2Fwb3JlID0gZ2dwbG90KGRhdGFTaW5nYXBvcmUsIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBTaW5nYXBvcmUKYGBgCiNTbG92ZW5pYQpgYGB7cn0KZGF0YVNsb3ZlbmlhIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIlNsb3ZlbmlhIikpCmxpYnJhcnkoZ2dwbG90MikKcFNsb3ZlbmlhID0gZ2dwbG90KGRhdGFTbG92ZW5pYSwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcFNsb3ZlbmlhCmBgYAojU291dGggQWZyaWNhCmBgYHtyfQpkYXRhU291dGhBZnJpY2EgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiU291dGggQWZyaWNhIikpCmxpYnJhcnkoZ2dwbG90MikKcFNvdXRoQWZyaWNhID0gZ2dwbG90KGRhdGFTb3V0aEFmcmljYSwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcFNvdXRoQWZyaWNhCmBgYAoKI1NvdXRoIEtvcmVhCmBgYHtyfQpkYXRhU291dGhLb3JlYSA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJTb3V0aCBLb3JlYSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBTb3V0aEtvcmVhID0gZ2dwbG90KGRhdGFTb3V0aEtvcmVhLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwU291dGhLb3JlYQpgYGAKI1NwYWluCmBgYHtyfQpkYXRhU3BhaW4gPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiU3BhaW4iKSkKbGlicmFyeShnZ3Bsb3QyKQpwU3BhaW4gPSBnZ3Bsb3QoZGF0YVNwYWluLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwU3BhaW4KYGBgCiNTd2VkZW4KYGBge3J9CmRhdGFTd2VkZW4gPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiU3dlZGVuIikpCmxpYnJhcnkoZ2dwbG90MikKcFN3ZWRlbiA9IGdncGxvdChkYXRhU3dlZGVuLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwU3dlZGVuCmBgYAojU3dpdHplcmxhbmQgCmBgYHtyfQpkYXRhU3dpdHplcmxhbmQgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiU3dpdHplcmxhbmQiKSkKbGlicmFyeShnZ3Bsb3QyKQpwU3dpdHplcmxhbmQgPSBnZ3Bsb3QoZGF0YVN3aXR6ZXJsYW5kLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwU3dpdHplcmxhbmQKYGBgCiNUYWl3YW4KYGBge3J9CmRhdGFUYWl3YW4gPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiVGFpd2FuIikpCmxpYnJhcnkoZ2dwbG90MikKcFRhaXdhbiA9IGdncGxvdChkYXRhVGFpd2FuLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwVGFpd2FuCmBgYAoKI1RoYWlsYW5kCmBgYHtyfQpkYXRhVGhhaWxhbmQgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiVGhhaWxhbmQiKSkKbGlicmFyeShnZ3Bsb3QyKQpwVGhhaWxhbmQgPSBnZ3Bsb3QoZGF0YVRoYWlsYW5kLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwVGhhaWxhbmQKYGBgCgojVHJpbmlkYWQgYW5kIFRvYmFnbwpgYGB7cn0KZGF0YVRyaW5pZGFkIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIlRyaW5pZGFkIGFuZCBUb2JhZ28iKSkKbGlicmFyeShnZ3Bsb3QyKQpwVHJpbmlkYWQgPSBnZ3Bsb3QoZGF0YVRyaW5pZGFkLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwVHJpbmlkYWQKYGBgCgojVHVuaXNpYQpgYGB7cn0KZGF0YVR1bmlzaWE8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJUdW5pc2lhIikpCmxpYnJhcnkoZ2dwbG90MikKcFR1bmlzaWEgPSBnZ3Bsb3QoZGF0YVR1bmlzaWEsIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBUdW5pc2lhCmBgYAoKI1R1cmtleQpgYGB7cn0KZGF0YVR1cmtleSA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJUdXJrZXkiKSkKbGlicmFyeShnZ3Bsb3QyKQpwVHVya2V5ID0gZ2dwbG90KGRhdGFUdXJrZXksIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBUdXJrZXkKYGBgCgojVWtyYWluZQpgYGB7cn0KZGF0YVVrcmFpbmUgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiVWtyYWluZSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBVa3JhaW5lID0gZ2dwbG90KGRhdGFVa3JhaW5lLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwVWtyYWluZQpgYGAKCiNVbml0ZWQgU3RhdGVzCmBgYHtyfQpkYXRhVVMgPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiVW5pdGVkIFN0YXRlcyIpKQpsaWJyYXJ5KGdncGxvdDIpCnBVUyA9IGdncGxvdChkYXRhVVMsIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBVUwpgYGAKCiNVcnVndWF5CmBgYHtyfQpkYXRhVXJ1Z3VheSA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJVcnVndWF5IikpCmxpYnJhcnkoZ2dwbG90MikKcFVydWd1YXkgPSBnZ3Bsb3QoZGF0YVVydWd1YXksIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBVcnVndWF5CmBgYAoKI1V6YmVraXN0YW4KYGBge3J9CmRhdGFVemJla2lzdGFuIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIlV6YmVraXN0YW4iKSkKbGlicmFyeShnZ3Bsb3QyKQpwVXpiZWtpc3RhbiA9IGdncGxvdChkYXRhVXpiZWtpc3RhbiwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcFV6YmVraXN0YW4KYGBgCgojVmlldCBOYW0KYGBge3J9CmRhdGFWaWV0TmFtIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIlZpZXQgTmFtIikpCmxpYnJhcnkoZ2dwbG90MikKcFZpZXROYW0gPSBnZ3Bsb3QoZGF0YVZpZXROYW0sIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBWaWV0TmFtCmBgYAoKI1llbWVuCmBgYHtyfQpkYXRhWWVtZW4gPC0gc3Vic2V0KGRhdGEsIGNvdW50cnlfbGFiICVpbiUgYygiWWVtZW4iKSkKbGlicmFyeShnZ3Bsb3QyKQpwWWVtZW4gPSBnZ3Bsb3QoZGF0YVllbWVuLCBhZXMoYWdlLCByaXNrX29yZCkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpwWWVtZW4KYGBgCgojWmFtYmlhCmBgYHtyfQpkYXRhWmFtYmlhIDwtIHN1YnNldChkYXRhLCBjb3VudHJ5X2xhYiAlaW4lIGMoIlphbWJpYSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBaYW1iaWEgPSBnZ3Bsb3QoZGF0YVphbWJpYSwgYWVzKGFnZSwgcmlza19vcmQpKSsKICBnZW9tX3BvaW50KCkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikKcFphbWJpYQpgYGAKCiNaaW1iYWJ3ZSAKYGBge3J9CmRhdGFaaW1iYWJ3ZSA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJaaW1iYWJ3ZSIpKQpsaWJyYXJ5KGdncGxvdDIpCnBaaW1iYWJ3ZSA9IGdncGxvdChkYXRhWmltYmFid2UsIGFlcyhhZ2UsIHJpc2tfb3JkKSkrCiAgZ2VvbV9wb2ludCgpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpCnBaaW1iYWJ3ZQpgYGAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK